package com.czmh.etc.onlinepubsys.request.cmg;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * Copyright (C), 2017-2021
 *
 * @Author Chenzj
 * Date: 2021/3/19 10:50
 * FileName: UpdateCustomerInfoRequest
 * Description:
 */
@ApiModel("招商局-更新ETC客户信息-对接请求对象")
@Data
public class UpdateCustomerInfoRequest {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("用户ID")
    @JSONField(serialize = false)
    private String userId; //用户ID

    @ApiModelProperty("订单id")
    @JSONField(serialize = false)
    private String orderId; //订单id

    @ApiModelProperty(notes = "地址", required = true)
    private String address;

    @ApiModelProperty(notes = "客户端唯一码，accessNo+随机编码", hidden = true)
    private String clientKey;

    @ApiModelProperty(notes = "证件号", required = true)
    private String idNum;

    @ApiModelProperty(notes = "证件类型：0-身份证； 1-军官证；2-护照；3-港澳通行证；4-台湾通行证 5-营业执照；6-组织机构代码证；7-社会团体法人 8-社会信用代码 9-事业单位法人 10-律师事务所许可证", required = true)
    private Integer idType;

    @ApiModelProperty(notes = "客户姓名", required = true)
    private String name;

    @ApiModelProperty(notes = "原证件号", required = true)
    private String oldIdNum;

    @ApiModelProperty(notes = "原证件类型：0-身份证； 1-军官证；2-护照；3-港澳通行证；4-台湾通行证 5-营业执照；6-组织机构代码证；7-社会团体法人 8-社会信用代码 9-事业单位法人 10-律师事务所许可证", required = true)
    private Integer oldIdType;

    @ApiModelProperty(notes = "证件图片1,图片使用Base64编码字符串，大小不超过300k", required = true)
    private String picData;

    @ApiModelProperty(notes = "证件图片2,图片使用Base64编码字符串，大小不超过300k", required = true)
    private String picData2;

    @ApiModelProperty(notes = "手机号码", required = true)
    private String tel;

    @ApiModelProperty(notes = "时间戳", hidden = true)
    private Long time;

    @ApiModelProperty(notes = "客户类型1-个人 6-单位", required = true)
    private Integer userProperties;

    @ApiModelProperty(notes = "单位开户行")
    private String bank;

    @ApiModelProperty(notes = "开户行账号")
    private String bankAccount;

    @ApiModelProperty(notes = "开户行地址")
    private String bankAddr;

    @ApiModelProperty(notes = "单位类型:1-政府机关 2-事业单位 3-国有企业4-外资企业 5-民营企业 6-其他只有客户类型为单位才有意义")
    private String companyType;

    @ApiModelProperty(notes = "邮箱")
    private String email;

    @ApiModelProperty(notes = "固定电话,非必填")
    private String fixedTel;

    @ApiModelProperty(notes = "发票抬头")
    private String invoiceUnit;

    @ApiModelProperty(notes = "纳税人识别号")
    private String taxpayerCode;
}
